/**
 * @Description:博客园地址：https://www.cnblogs.com/zumengjie/
 * @author:顶风少年
 * @date: 2021年4月1日 下午9:37:42
 */
package datang.dtdb.session;

/**
 * 工厂类获取SqlSession
 * openSession()默认autoCommit=false（强制让用户调用commit），level=REPEATABLE_READ
 */
public interface SqlSessionFactory {

	/**
	 * 获取一个SqlSession实现,默认autoCommit=false也就是不会自动提交
	 * 注意JDBC中setAutoCommit(boolean);默认是true，自动提交
	 * 事务隔离级别默认是RC，TRANSACTION_READ_COMMITTED
	 */
	SqlSession openSession();

	/**
	 * 获取SqlSession实现，由用户指定是否是自动提交.
	 */
	SqlSession openSession(Boolean autoCommit);

	/**
	 * 获取SqlSession实现，由用户指定事务隔离级别
	 * */
	SqlSession openSession(TransactionIsolationLevel level);

	/**
	 * 设置是否自动提交，事务隔离级别。
	 * */
	SqlSession openSession(Boolean autoCommit, TransactionIsolationLevel level);

}
